#include "../include/tinyxml2.h"
#include <iostream>

using namespace tinyxml2;

using std::cout;
using std::endl;
using std::string;
using std::cerr;

void create_xml_doc(XMLDocument& doc, int id, const char* link, const char* title, const char* content) {
    // 1. 创建 <doc> 节点
    XMLElement* docNode = doc.NewElement("doc");
    doc.RootElement()->InsertEndChild(docNode); // 将其添加到根节点下
    
    // 2. 创建 <id> 节点并设置文本
    XMLElement* idNode = doc.NewElement("id");
    idNode->SetText(id); // TinyXML-2 自动将 int 转换为文本
    docNode->InsertEndChild(idNode);

    // 3. 创建 <link> 节点并设置文本
    XMLElement* linkNode = doc.NewElement("link");
    linkNode->SetText(link);
    docNode->InsertEndChild(linkNode);

    // 4. 创建 <title> 节点并设置文本
    XMLElement* titleNode = doc.NewElement("title");
    titleNode->SetText(title);
    docNode->InsertEndChild(titleNode);

    // 5. 创建 <content> 节点并设置文本
    XMLElement* contentNode = doc.NewElement("content");
    contentNode->SetText(content);
    docNode->InsertEndChild(contentNode);
}

int main(){
    XMLDocument doc;
    // 必须先创建根节点，例如 <docs>
    doc.InsertFirstChild(doc.NewElement("docs"));

    create_xml_doc(doc, 4, "http://example.com/4", "新文章", "这是内容...");

    // 保存到文件
    doc.SaveFile("new_corpus.xml");

    return 0;
}